﻿using BeautySalon.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace BeautySalon.Pages
{
    /// <summary>
    /// Логика взаимодействия для EntriesPage.xaml
    /// </summary>
    public partial class EntriesPage : Page
    {
        public EntriesPage()
        {
            InitializeComponent();

            dGridEntries.ItemsSource = Entities.GetContext().ClientService.ToList();
        }

        // Редактирование записи
        private void EditBtn_Click(object sender, RoutedEventArgs e)
        {
            NavigationService.Navigate(new AddEntryPage((sender as Button).DataContext as ClientService));
        }

        // Добавление записи
        private void AddBtn_Click(object sender, RoutedEventArgs e)
        {
            NavigationService.Navigate(new AddEntryPage(null));
        }

        // Удаление записи
        private void DeleteBtn_Click(object sender, RoutedEventArgs e)
        {
            // Передача выбранной записи
            var selectRecord = dGridEntries.SelectedItems.Cast<ClientService>().ToList();

            // Проверка на данные
            if (selectRecord.Count != 0)
            {
                if (MessageBox.Show($"Вы уверены, что хотите удалить {selectRecord.Count} элементов", "Удаление",
                                    MessageBoxButton.YesNo,
                                    MessageBoxImage.Question) == MessageBoxResult.Yes)
                {
                    try
                    {
                        Entities.GetContext().ClientService.RemoveRange(selectRecord);
                        Entities.GetContext().SaveChanges();
                        dGridEntries.ItemsSource = Entities.GetContext().ClientService.ToList();
                        MessageBox.Show("Успешно удалено!");
                    }
                    catch (Exception ex)
                    { MessageBox.Show(ex.Message); }
                }
            }
            else
                MessageBox.Show("Выберите запись!");
        }

        // Обновление страницы
        private void Page_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            if (Visibility == Visibility.Visible)
                dGridEntries.ItemsSource = Entities.GetContext().ClientService.ToList();
        }
    }
}
